package com;

import java.util.SortedSet;
import java.util.TreeSet;

/**
 * 为什么 SortedSet 集合存储的元素会进行排序?
 * 
 * 因为被存储的元素实现了 Comparable 接口 TreeSet 在进行添加的元素的时候,会自动调用 compareTo 方法完成比较
 * 
 * 所以如果我们自定义类型想要存储在 TreeSet 集合中的话,类必须实现 Comparable 接口,并覆写 compareTo 方法
 * 
 * @author lenovo
 * @Date 2020年7月16日
 * @Time 下午9:13:14
 */
public class Collection_10_SortedSet_02 {

	public static void main(String[] args) {
		SortedSet users = new TreeSet();
		users.add(new User(19));
		users.add(new User(20));
		users.add(new User(1));
		users.add(new User(23));
		System.out.println(users.size());
		System.out.println(users);
	}

}

class User implements Comparable {
	int age;

	public User(int age) {
		super();
		this.age = age;
	}

	@Override
	public String toString() {
		return "User [age=" + age + "]";
	}

	@Override
	public int compareTo(Object o) {
		if (!(o instanceof User)) {
			return 0;
		}
		User u1 = (User) o;
		return this.age - u1.age;
		// 返回0 说明集合中有这个元素,就不添加
		// 小于0 说明要添加的元素比集合中的元素小,往前放
		// 大于0 说明大,往后放
		// return -1;
	}

}